package xyz.xmh.pattern.creational.prototypepattern;

/**
 * PrototypePatternDemo
 * 原型模式演示<br/>
 * 注意获取的不是集合中的对象，而是集合中对象的克隆，改变这个对象，集合中的对象不会发生变化
 *
 * @author xuMingHai
 * @since 2021/4/29 星期四 17:03
 */
public class PrototypePatternDemo {

    public static void main(String[] args) {
        // 加载创建的缓存对象
        ShapeCache.loadCache();

        // 获取缓存中对象的克隆对象
        Shape shape1 = ShapeCache.getShape("1");
        // 输出对象信息
        System.out.print(shape1.getType());
        shape1.draw();

        // 获取缓存中对象的克隆对象
        Shape shape2 = ShapeCache.getShape("2");
        // 输出对象信息
        System.out.print(shape2.getType());
        shape2.draw();

        // 获取缓存中对象的克隆对象
        Shape shape3 = ShapeCache.getShape("3");
        // 输出对象信息
        System.out.print(shape3.getType());
        shape3.draw();

    }

}
